/**  
 * <b>项目名：</b>设计模式<br/>  
 * <b>包名：</b>com.pattern.singleton<br/>  
 * <b>文件名：</b>DoubleCheckLockSingleton.java<br/>  
 * <b>版本信息：</b><br/>  
 * <b>日期：</b>2016年7月5日-下午5:01:21<br/>  
 * <b>Copyright (c)</b> 2016Light公司-版权所有<br/>  
 *   
 */
package com.pattern.singleton;

/**  
 *   双重检测锁单例模式
 * <b>类名称：</b>DoubleCheckLockSingleton<br/>  
 * <b>类描述：</b><br/>  
 * <b>创建人：</b>ACL<br/>  
 * <b>修改人：</b>ACL<br/>  
 * <b>修改时间：</b>2016年7月5日 下午5:01:21<br/>  
 * <b>修改备注：</b><br/>  
 * @version 1.0.0<br/>  
 *   
 */
public class DoubleCheckLockSingleton {
	private static DoubleCheckLockSingleton instance = null;
	
	public static DoubleCheckLockSingleton getInstance(){
		if (instance == null){
			DoubleCheckLockSingleton sc;
			synchronized (DoubleCheckLockSingleton.class) {
				sc = instance;
				if (sc == null){
					synchronized (DoubleCheckLockSingleton.class) {
						if (sc == null){
							sc = new DoubleCheckLockSingleton();	
						}
					}
					instance = sc;
				}
			}
			instance = sc;
		}
		return instance;
	}
	
	private DoubleCheckLockSingleton(){
		
	}
}
